Is Could Computing Green? by Nan Cen, Peiran
Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction P. Mell and T. Grance, Draft NIST Working Definition of Cloud Computing v14, Nat. Inst. Standards Technol., 2009. Online. Available: http://csrc.nist.gov/groups/SNS/cloud-computing/index.html. Green cloud computing, refers to environmentally sustainable computing. Murugesan S. Murugesan, Harnessing green IT: principles and practices, IEEE IT Professional, 2008, pp.24-33 defines the field of green computing as 'the study and practice of designing, manufacturing, using and disposing of computers, servers and associated subsystems - such as monitors, printers, storage devices and networking and communication systems - efficiently and effectively with minimal or no impact on the environment'. Modern IT systems are complicated because all of them rely on so many factors such as application or software, people, networks and hardware. A solution may also need to address end-user satisfaction, management restructuring, regulatory compliance and return on investment (RIO). To reduce the use of hazardous materials, maximize energy efficiency during the product's lifetime, and promote the recyclability or biodegradability of defunct products and factory waste are the main goals of green computing, which can be attained by making use of computers as energy-efficient as possible and designing algorithms and systems for efficiency-related computer technologies N. Xiong,W. Han,A. vandenBerg, Green cloud computing schemes based on networks: a survey, Communications, IET , vol.6, no.18, pp.3294,3300, Dec. 18 2012.. A Short Answer ---- If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility. The computer utility could become the basis of a new and important industry." John McCarthy, who received the Turing Award in 1971 for his major contributions to the field of Artificial Intelligence, said at the MIT Centennial in 1961.? In 1992, the US Environmental Protection Agency launched a voluntary labeling programme names Energy Star, which is designed to promote energy-efficient technologies in monitors, climate control equipment and so on. The term " green computing" was probably coined shortly after the Energy Star programme began. Concurrently, the Swedish organization TCO Development launched the TCO Certification program. At first, this program was to promote low magnetic and electrical emissions from cathode-ray tube (CRT)-based computer displays, and was later expanded to include criteria on energy consumption, ergonomics, and the use of hazardous materials in construction. Challenges and Requirements Fig. 1 shows cloud computing based on networks is as a service. This model is called utility computing, or recently as cloud computing or clouds. A. Weiss, Computing in the clouds, Networker, New York, USA, vol. 11, pp. 16-25, Dec. 2007. From Fig. 1, we can see that there are four deployment models: Public, Private, Hybrid and Community model. Generally, cloud computing delivers there main services under the pay-as-you-go mode, which provides both physical and virtualized cloud resources. It includes Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS).? A larger data center may require many megawatts of electricity, enough to power thousands of homes R.H. Katz, ``Tech titans building boom'', IEEE spectrum, 2009. Cloud service providers, such as Google, Microsoft, Amazon, Yahoo! and many other data centers, cannot ignore their huge amount of energy costs. A back-of-the-envelope calculation for Google suggests that it consumes more than 38M$ worth of electricity annually. Therefore, we cannot only focus on optimizing data center resource management for pure performance, but also optimizing energy efficiency. The intensive demands of users are growing so fast that larger servers and disks, more powerful chips which can finish scheduled jobs with required time. Moreover, the interaction between front-end clients and back-end data centers will cost enormous escalation of energy usage. In other words, using less energy to reach the same quality of services in the data center is one of the big challenges and requirements that cloud computing faces.? In conclusion, the future of the cloud computing is that the data center should be managed in an energy-efficient manner, which means cloud resources need to be allocated not only to satisfy quality-of-service (QoS) requirements by users via service level agreements, but also to meet a criterion of energy usage. Existing Methods to Make Cloud Computing Green * Microprocessors It is well known that microprocessors play a key role in computation processing.? * Task scheduling Data center needs to handle large amount of tasks everyday, how to efficiently schedule the tasks is a hot topic in green cloud computing. In order to reduce the energy consumption, developing an effective task scheduling algorithm is very significant.? * Virtualization? Using virtual machines is one of the effective approach to reduce the power consumption and allocate resources. * Cooling systems Due to the characteristics of data center, which allocates millions of servers, cooling becomes one challenge definitely in cloud computing.? * Network Topologies The network design inside data center is different from the internet and P2P. It should be constructed based on the principle - enrich the topology by increasing connectivity. * Disk Storage To guarantee the benefits of online storage with respect to decreasing the power consumption is still a subject of green cloud computing. A Long Answer ---- In this part, we will introduce state-of-the-art scheduling algorithms used in data center to make cloud computing green. First Come First Served Algorithm (FCFS) FCFS scheduling algorithm automatically executes queued requests and processes by the order of their arrival. With first come, first served, what comes first is handled first; the next request in line will be executed once the one before it is complete. It provides an efficient, simple and error-free process scheduling algorithm that saves valuable CPU resources. It uses non-preemptive scheduling in which a process is automatically queued and processing occurs according to an incoming request or process order. FCFS derives its concept from real-life customer service. Let's take a look at how FCFS process scheduling works. Suppose there are three processes in a queue: P1, P2 and P3. P1 is placed in the processing register with a waiting time of zero seconds and 10 seconds for complete processing. The next process, P2, must wait 10 seconds and is placed in the processing cycle until P1 is processed. Assuming that P2 will take 15 seconds to complete, the final process, P3, must wait 25 seconds to be processed. FCFS may not be the fastest process scheduling algorithm, as it does not check for priorities associated with processes. These priorities may depend on the processes' individual execution times. Pros: *Simple to execute and has low overhead. Cons: *Inappropriate for interactive systems. *Large fluctuations in average turnaround time are possible. Shortest Job First Algorithm (SJF) This method is quite same as the FCFS but the difference is the in this case the processor will not process the jobs (processes) as they will come. Instead, a scheduler after a complete cycle (consider this as a 1 second job done) will check which is the job with the shortest burst time right now and will work on that. Pros: *Simple. *It minimizes the average amount of time each process has to wait until its execution is complete. Cons: *It has the potential for process starvation for processes which will require a long time to complete if short processes are continually added. Round Robin Algorithm (RR) It is the simplest and basic algorithm that uses the concept of time quantum or slices. Here the time is divided into multiple slices and each node is given a particular time quantum or time interval and in this quantum the node will perform its operations. The resources of the service provider are provided to the client on the basis of this time quantum. Fig.2 illustrates the scheduling process of Round Robin Scheduling Algorithm. The Round Robin algorithm is a combination of First-Come First-Served (FCFS) and preemptive scheduling. In RR, the ready queue is treated as a circular queue, and each process gets the CPU for a time quantum (or time slice), typically 10-100ms.A process runs until it blocks, terminates or uses up its time slice. In Round Robin scheduling the time quantum plays a very important role for scheduling. If time quantum is very large, then Round Robin Scheduling Algorithm is same as the FCFS scheduling and the response time will be very large. If the time quantum is extremely too small, then Round Robin Scheduling is called as Processor Sharing Algorithm and number of context switches is very high. Moreover, it will result in poor throughput. It selects the load on random basis and leads to the situation where some nodes are heavily loaded and some are lightly loaded. Though the algorithm is very simple but there is an additional load on the scheduler to decide the size of quantum and it has longer average waiting time, higher context switches, higher turnaround time and low throughput. Pros: *Works well for short jobs, typically used in timesharing systems. Cons: *High overhead due to frequent context switches. *Increase average waiting time, especially if CPU bursts are the same length and need more than one time quantum. Performance Metrics In the previous three sections, where we introduce the three scheduling algorithms, terms like '(average) waiting time' and 'turnaround time' appear many times to state the Pros and Cons of these algorithms. In this section, we will give the definitions of all these performance metrics. Suppose we have N jobs. *Total waiting time Total waiting time, T_{tot}^{wait} , is the sum of the waiting time of each job (process). T_{tot}^{wait}=\sum_{i=1}^{N}{t_{i}^{wait}} , where t_{i}^{wait} represents the waiting time of job i . *Average waiting time Let's denote the average waiting time as T_{ave}^{w} . T_{ave}^{wait}=\frac{\sum_{i=1}^{N}{t_{i}^{wait}}}{N} . *Total turnaround time Turnaround time t_{i}^{turn} is the total time taken between the submission of a process for execution and the return of the complete output to user i . Therefore total turnaround time is the sum of the turnaround time of all the users. T_{tot}^{turn}=\sum_{i=1}^{N}{t_{i}^{turn}} . *Average turnaround time The average turnaround time T_{ave}^{turn}=\frac{\sum_{i=1}^{N}{t_{i}^{turn}}}{N} . Examples ---- Schedule Tasks using Round Robin Scheduling Algorithm In this example, we demonstrate how to schedule tasks in cloud computing, and then calculate the average waiting time. Fig. 3 illustrates the example data. In this example, to simplify the calculating process, we assume that all the arrival time of the processes is t=0 , and we also assume the time quantum is T_q=2 units. In this example, we demonstrate 5 processes using Round Robin Scheduling Algorithm. In the first circle, from Fig.4, we can see that, these five processed are sequentially processed and Process 3 is finished and removed from the process queue. In the second circle, Fig. 5 shows that the remaining four processes are processed. In this circle, due to P3 remains only 1 time quantum and we can see that the time quantum bar for P3 is from 14 to 15. P4 is done in this circle. In the third circle, as illustrated in Fig. 6, all the remaining processed from second circle are finished. P2 uses 1 time quantum and P5 uses 3 time quantums and the corresponding time bar is from 20 to 23. Then, we calculate the average waiting time. The waiting time for each process is shown in Fig. 7. T_{avrw}=\frac{13+15+4+12+16}{5}=12 Schedule Tasks using First Come First Served Scheduling Algorithm Schedule Tasks using Shortest Job First Scheduling Algorithm ---- References ----